package com.example.hp.week12;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.webkit.WebView;
import android.widget.TextView;


public class URLConnectionActivity extends AppCompatActivity {

    //代表网页 URL 的字符串（尚无文件名及参数）
    String urlstr = "http://192.168.0.104:8080/mypages/";
    //用于显示网页源代码的文本框
    TextView showSource;
    //用于生成和显示网页的 WebView 组件
    WebView showWeb, goYtu;
    //代表服务器响应的字符串

    // 为了在线程间传递结果而增加的内部属性
    String response;
    //读取网页是一个耗时操作，需要新开线程完成，设置 Handle 用于数据传递
    Handler handler=new Handler() {
        @Override
        public void handleMessage(Message msg) {
            if(msg.what ==0x123){
                //设置 show 组件显示服务器响应
                showSource.setText(response);
            }
            super.handleMessage(msg);
        }
    };

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                    super.onCreate(savedInstanceState);
                    setContentView(R.layout.activity_urlconnection);

            //初始化组件
            showSource= (TextView) findViewById(R.id.showSource);
            showWeb= (WebView) findViewById(R.id.showWeb);
            goYtu = (WebView) findViewById(R.id.goLink);
            //设置“Get 方法访问”按钮，当点击时，用 GET 方法分别获得 getpage.jsp 源代码和网页
            // 注意 getpage.jsp 是动态网页，手机端获得的是 web 服务器运行程序后的结果
            // 若 getpage.jsp 中有数据库的调用，手机端间接地访问到了 Web 数据库
            findViewById(R.id.get).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //利用新线程获得 getpage.jsp 的源代码并显示
                    new Thread(){
                        @Override
                        public void run() {
                            response=GetPostUtil.sendGet(urlstr + "getpage.jsp","name=YTUer");
                            //发送消息通知 UI 线程更新 UI 组件
                            handler.sendEmptyMessage(0x123);
                        }
                    }.start();
                    //在 WebView 中加载网页
                    showWeb.loadUrl(urlstr + "getpage.jsp?name=YTUer");
                }
            });

            //设置“Post 方法访问”按钮，当点击时，用 POST 方法分别获得 postpage.jsp 源代码和网页
            // 注意 postpage.jsp 是动态网页，手机端获得的是 web 服务器运行程序后的结果
            // 若 postpagepage.jsp 中有数据库的调用，手机端间接地访问到了 Web 数据库
             findViewById(R.id.post).setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 //利用新线程获得postpage.jsp 的源代码并显示
                 new Thread(){
                     @Override
                     public void run() {
                         response=GetPostUtil.sendPost( urlstr + "postpage.jsp","name=ytu&pwd=123456");
                         //发送消息通知 UI 线程更新 UI 组件
                         handler.sendEmptyMessage(0x123);
                     }
                 }.start();
                 //在 WebView 中加载网页
                 showWeb.loadUrl(urlstr + "postpage.jsp?name=ytu&pwd=123456");
             }
             });
            //动态生成页面对象（此处仅包含一个文本+链接）
            StringBuffer htmlBuffer = new StringBuffer();
            htmlBuffer.append("<html>");
            htmlBuffer.append("<body>点击<a href=\"http://www.ytu.edu.cn\">烟大</a></body>");
            htmlBuffer.append("</html>");
            //将生成的页面装载到 WebView 组件中
            goYtu.loadDataWithBaseURL("",htmlBuffer.toString(),"text/html","UTF-8","");
        }
}




//连接错误处理参考：https://www.jianshu.com/p/b5edb7a61dbb